Algebraic reasoning for object-oriented programming
نویسندگان
چکیده
We present algebraic laws for a language similar to a subset of sequential Java that includes inheritance, recursive classes, dynamic binding, access control, type tests and casts, assignment, but no sharing. These laws are proved sound with respect to a weakest precondition semantics. We also show that they are complete in the sense that they are sufficient to reduce an arbitrary program to a normal form substantially close to an imperative program; the remaining object-oriented constructs could be further eliminated if our language had recursive records. This suggests that our laws are expressive enough to formally derive behaviour preserving program transformations; we illustrate that through the derivation of provablycorrect refactorings.
منابع مشابه
An Algebraic Approach for the Specification and the Verification of Aspect- Oriented Systems
Aspect-Oriented (AO) Technology is a post-object-oriented technology used to overcome limitations of Object-Oriented (OO) Technology, such as the cross-cutting concern problem. Aspect-Oriented Programming (AOP) also offers modularity and traceability benefits. Yet, reasoning, specification, and verification of AO systems present unique challenges, especially as such systems evolve over time. Co...
متن کاملDialgebraic Semantics of Typed Object Calculi
Algebraic data type theory has a notion of structural recursion. Coalgebraic data types similarly have a notion of structural corecursion. In this thesis we study a third form of recursion: direcursion. The other two notions have been used in program derivations, correctness proofs, and in foundations of functional and class-based languages. Direcursion, on the other hand, has not been extensiv...
متن کاملDeclarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کاملAn Algebraic Approach to Refinement of KBS Specification
This paper reports on an ongoing experiment whose main purpose is to investigate to what extent object orientation might solve the existing or potential problems inherent in the verification and validation of KBSs, when these investigations are carried out at a level higher than the implementation level. Techniques for specifying and reasoning about properties of KBSs have been described in pre...
متن کاملAn Approach to Algebraic Semantics of Object-Oriented Languages
Studying the semantics of programming languages has a long tradition in computer science. Various approaches use various formalisms with various objectives. In the last two decades, algebraic specifications have frequently been used to study functional as well as imperative languages, and, in particular, object-orientated ones, thereby often focusing on specific aspects and concepts of this pro...
متن کاملAn Efficient Implementation of Multi-Context Algebraic Reasoning System with Lazy Evaluation
A multi-context algebraic reasoning system is a computational system which can efficiently simulate parallel processes each executing an algebraic reasoning procedure under a particular context (or a premise). In particular, the multi-completion system MKB simulates the parallel KnuthBendix completion procedures, which, given a set of equations and a set of reduction orderings, try to generate ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Sci. Comput. Program.
دوره 52 شماره
صفحات -
تاریخ انتشار 2004